Optimizations in the Cibyl binary translator for J2ME devices
نویسندگان
چکیده
The Java J2ME platform is one of the largest software platforms available, and often the only available development platform for mobile phones, which is a problem when porting C or C++ applications. The Cibyl binary translator targets this problem, translating MIPS binaries into Java bytecode to run on J2ME devices. This paper presents the optimization framework used by Cibyl to provide compact and well-performing translated code. Cibyl optimizes expensive multiplications/divisions, floating point support, function co-location to Java methods and provides a peephole optimizer. The paper also evaluates Cibyl performance both in a real-world GPS navigation application where the optimizations increase display update frequency with around 15% and a comparison against native Java and the NestedVM binary translator where we show that Cibyl can provide significant advantages for common code patterns.
منابع مشابه
Fast Binary Translation: Translation Efficiency and Runtime Efficiency
Fast binary translation is a key component for many modern software techniques. This paper reflects on the implementation of fastBT, a generator for low-overhead, tablebased dynamic (just-in-time) binary translators. We discuss the most challenging sources of overhead, propose optimizations to further reduce these penalties, and present a detailed performance analysis with different approaches ...
متن کاملDynamic Re-engineering of Binary Code with Run-time Feedbacks
Dynamic binary translation is the process of translating, modifying and rewriting executable (binary) code from one machine 4 to another at run-time. This process of low-level re-engineering consists of a reverse engineering phase followed by a forward 5 engineering phase. 6 UQDBT, the University of Queensland Dynamic Binary Translator, is a machine-adaptable translator. Adaptability is provide...
متن کاملRegister Liveness Analysis for Optimizing Dynamic Binary Translation
Dynamic binary translators compile machine code from a source architecture to a target architecture at run time. Due to the hard time constraints of just-in-time compilation only highly efficient optimization algorithms can be employed. Common problems are an insufficient number of registers on the target architecture and the different handling of condition codes in source and target architectu...
متن کاملLow-Complexity Dynamic Translation in VDebug
Machine-level dynamic binary translation has been used in applications ranging from debugging, performance analysis, and security policy enforcement to full machine virtualization. Most implementations are optimized for performance rather that simplicity: they translate to an internal intermediate form before generating target code. While an intermediate form greatly assists certain types of co...
متن کاملSpecification-Driven Dynamic Binary Translation
Machine emulation allows for the simulation of a real or virtual machine, the source machine, on various host computers. A machine emulator interprets programs that are compiled for the emulated machine, but normally at a much reduced speed. Therefore, in order to increase the execution speed of such interpreted programs, a machine emulator may apply different dynamic optimization techniques. I...
متن کامل